import Vue from "vue";

// 补全图片路径
Vue.filter("completeImageUrl", (image_url) => {
  if (!image_url) {
    return "";
  } else {
    return `${image_url}?imageView=1&type=webp&thumbnail=247x0`;
  }
});

// 格式化播放次数
Vue.filter("parsePlayCount", (count) => {
  if (!count) {
    return 666;
  } else if (count < 10000) {
    return count;
  } else if (count >= 10000) {
    return `${(count / 10000).toFixed(1)}万`;
  }
});

// 时间转换
Vue.filter("parseTime", (num) => {
  if (!num) {
    return "loading";
  } else {
    // 分
    let minute = Math.floor((num % 3600) / 60);
    // 秒
    let second =
      Math.floor(num % 60) < 10
        ? "0" + Math.floor(num % 60)
        : Math.floor(num % 60);
    return `${minute}:${second}`;
  }
});

// 将日期格式化为YYYY-MM-DD
Vue.filter("formatDate", (value) => {
  if (!value) {
    // 猜猜这是什么？
    const date = "2027-2-6"

    return date;
  } else if (typeof value === "string") {
    return value;
  } else {
    const date = new Date(Number(value));
    const isoString = date.toISOString();
    return isoString.slice(0, 10);
  }
});

// 毫秒数 => aa:bb
Vue.filter("formatSeconds", (value) => {
  // 如果value不是数字或者小于0，则直接返回00:00
  if (isNaN(value) || value < 0) {
    return "00:00";
  }

  // 获取毫秒数对应的分钟和秒
  let minutes = Math.floor(value / 60000);
  let seconds = ((value % 60000) / 1000).toFixed(0);

  // 如果只有秒数，需要前面补0
  seconds = (seconds < 10 ? "0" : "") + seconds;

  // 返回格式化的时间
  return minutes + ":" + seconds;
});
